﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;

/// <summary>
/// Descripción breve de GestionPromociones
/// </summary>
public class GestionPromociones
{
    static GestionPromociones instance;
    public static GestionPromociones getInstance()
    {
        if (instance == null)
        {
            instance = new GestionPromociones();
        }
        return instance;
    }
	private GestionPromociones()
	{
		//
		// TODO: Agregar aquí la lógica del constructor
		//
	}
    public void crearPromocion(Administrador a, Promocion p)
    {
        SqlConnection con = Conexion.getConexion();
        con.Open();
        String SQL = "INSERT INTO [casino].[dbo].[Promociones]"+
           "([IdAdministrador]"+
           ",[Nombre]"+
           ",[Requisitos]"+
           ",[Ventajas]"+
           ",[Anuncio]"+
           ",[FechaCreacion]"+
           ",[FechaPublicacion]"+
           ",[FechaFinPublicacion])"+
     "VALUES"+
           "('"+a.getIdAdministrador()+"'"+
           ",'"+p.getNombre()+"'"+
           ",'"+p.getCondiciones()+"'"+
           ",'"+p.getVentajas()+"'"+
           ",'"+p.getTexto()+"'"+
           ",'"+DateTime.Now.ToShortDateString()+"'"+
           ",'"+DateTime.Now.ToShortDateString() + "'" +
           ",null"+")";
        SqlCommand comando = new SqlCommand(SQL, con);
        comando.ExecuteNonQuery();
        con.Close();
    }
    public Promocion damePromocionId(String id)
    {
        SqlConnection con = Conexion.getConexion();
        Promocion prom = new Promocion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("select * from Promociones where IdPromociones='" + id + "'", con);
            myReader = myCommand.ExecuteReader();
            if (myReader.Read())
            {
                prom.setNombre(myReader["Nombre"].ToString());
                prom.setCondiciones(myReader["Requisitos"].ToString());
                prom.setTexto(myReader["Anuncio"].ToString());
                prom.setIdPromocion(myReader["IdPromociones"].ToString());
                prom.setFechaEjecucion(myReader["FechaPublicacion"].ToString());
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            return null;
        }
        con.Close();
        return prom;
    }

    public ArrayList listaPromociones()
    {
        ArrayList lista = new ArrayList();
        SqlConnection con = Conexion.getConexion();
        Promocion prom;
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("select * from [casino].[dbo].[Promociones] where [FechaFinPublicacion] IS NULL", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                prom = new Promocion();
                prom.setNombre(myReader["Nombre"].ToString());
                prom.setCondiciones(myReader["Requisitos"].ToString());
                prom.setTexto(myReader["Anuncio"].ToString());
                prom.setIdPromocion(myReader["IdPromociones"].ToString());
                prom.setFechaEjecucion(myReader["FechaPublicacion"].ToString());
                lista.Add(prom);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            return null;
        }
        con.Close();
        return lista;
    }

    public bool eliminarPromocion(Promocion p)
    {
        if (p != null)
        {
            SqlConnection con = Conexion.getConexion();
            con.Open();
            String SQL = "UPDATE [casino].[dbo].[Promociones]" +
               " SET [FechaFinPublicacion]='" + DateTime.Now.ToShortDateString() + "'" +
               "WHERE IdPromociones='" + p.getIdPromocion() + "'";
            SqlCommand comando = new SqlCommand(SQL, con);

            comando.ExecuteNonQuery();
            con.Close();

        }
        else
        {
            return false;
        }
        return true;

    }
}
